
$(document).ready(function(){
	LoginPage.rectify(); // 调整页面
	/*LoginPage.bindListener();*/
	$("#username").focus();
});
var LoginPage={
	rectify:function(){
		var maxWidth=0;
		$(".login-form label").each(function(){
			var width=parseInt($(this).css("width"));
			if(width>maxWidth)
				maxWidth=width;
		});
		$(".login-form label").css("width",maxWidth);
	},
	// 产生验证码
	validateCodeChange:function(img){
		img.src = "randomImage?" + Math.random();
	},
	// 判断是否具备登录条件
	isAccess:function(){
		// 获取并判定是否为空
		var isBlankUsername = StringUtil.isBlank($("#username").val());
		var isBlankPassword = StringUtil.isBlank($("#password").val());
		var isBlankCaptcha = StringUtil.isBlank($("#captcha").val());
		if(isBlankUsername){
			$("#username").focus();$("#serverErrMsg").html("用户名不能为空");
		}
		if(isBlankPassword){
			$("#password").focus();$("#serverErrMsg").html("密码不能为空");
		}
		if(isBlankCaptcha){
			$("#captcha").focus();$("#serverErrMsg").html("验证码不能为空");
		}
		
		var usernameAccess = !$("#username").hasClass("m-error") && !isBlankUsername;
		var passwordAccess = !$("#password").hasClass("m-error") && !isBlankPassword;
		var validateCodeAccess = !$("#captcha").hasClass("m-error") && !isBlankCaptcha;
		return usernameAccess && passwordAccess && validateCodeAccess;
	},
	// 绑定事件
	bindListener:function(){
		// 用户id输入的值改变监听
		var regUsername=new RegExp("^[a-zA-Z0-9]{5,12}$");
		var $username = $("#username"); 
		$("#username").bind("input propertychange focus",function(){
			if(!regUsername.test(this.value)){
				$username.hasClass("m-error") || $username.addClass("m-error");
			} else {
				$username.hasClass("m-error") && $username.removeClass("m-error");
			}
		});
		// 密码输入的值改变监听
		var regPassword=new RegExp("^[0-9A-Za-z]{5,30}$");  // 5-30位必须包含数字和字母
		// var regPassword=new RegExp("(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{5,30}"); // 5-30位必须包含数字/字母/特殊字符
		var $password = $("#password");
		$("#password").bind("input propertychange focus",function(){
			if(!regPassword.test(this.value)){
				$password.hasClass("m-error") || $password.addClass("m-error");
			} else {
				$password.hasClass("m-error") && $password.removeClass("m-error");
			}
		});
		// 验证码输入的值改变监听
		var regValidateCode=new RegExp("^[0-9a-zA-Z]{4}$");
		var $validateCode = $("#captcha");
		var $validateCodeTag = $("#validateCodeTag");
		$("#captcha").bind("input propertychange",function(){
			if(!regValidateCode.test(this.value)){
				$validateCode.hasClass("m-error") || $validateCode.addClass("m-error");
				$validateCodeTag.css("display", "none");
			} else {
				$validateCode.hasClass("m-error") && $validateCode.removeClass("m-error");
				LoginPage.validate(false);
			}
			LoginPage.lastValidateCode = this.value;
		});
		// 登录按钮点击事件
		$("#loginBtn").click(function(){
			LoginPage.validate();
		});
		
		// 绑定回车事件
		$(".login-form input").bind("keypress",function(event){
			if(event.keyCode==13){
				LoginPage.validate();
			}
		});
	},
	validate:function(toLogin){
		if(toLogin==undefined)
			toLogin=true;
		
		LoginPage.resetErrMsg();
		
		var loginInfo={
			"username":$("#username").val(),
			"password":BASE64.encoder($("#password").val()),
			"validateCode":$("#captcha").val()
		};
		// 验空
		$.each(loginInfo,function(key,value){
			if(value==""){
				$("#"+key).focus();
			}
		});
		
		if(LoginPage.isAccess()){
			// 验证验证码
			var validateCommand = new CommonAjax("randomImage?Rand="+loginInfo.validateCode);
			validateCommand.silent = true;
			validateCommand.bindSuccessEvent(function(data){
				$("#validateCodeTag").css("display", "inline");
				if(data=="true" || data==true){
					$("#validateCodeTag").prop("className","fa fa-check-circle");
					$("#validateCodeTag").css("color","#11CC11");
					// if(toLogin)
						// LoginPage.login(loginInfo);
				}else{
					$("#validateCodeTag").prop("className","fa fa-times-circle");
					$("#validateCodeTag").css("color","#CC0101");
					$("#validateCode").text(""); // 置空
				}
			});
			if(this.lastValidateCode != loginInfo.validateCode){
				validateCommand.send();
			}
		}
	},
	// 登录
	login:function(data){
	},
	// 重置错误提示
	resetErrMsg:function(){
		$(".login-form span").text("");
	}
};
